package bairui.international.console.web.controller.barter.category;

/**
 *
 */
@SuppressWarnings("serial")
abstract 
public class Module_Info_OutputModel
 extends bairui.international.model.domain.jpa.TB_ProductCategory
{

	/**
	 * 构造函数
	 */
	@lombok.Getter @com.fasterxml.jackson.annotation.JsonIgnore
	private bairui.international.model.domain.jpa.TB_ProductCategory _origin;

	public Module_Info_OutputModel(
		bairui.international.model.domain.jpa.TB_ProductCategory bean
	) {
		this._origin = bean;
		if(null != bean){
			this.setName(bean.getName());
			this.setNumber(bean.getNumber());
			this.setOrderValue(bean.getOrderValue());
			this.setCreateTime(bean.getCreateTime());
			this.setModifyTime(bean.getModifyTime());
		}
		/* 附加属性赋值前 */
		assign_before();
		/* 附加属性赋值 */
		this.setProductPropertyToString(this.assignProductPropertyToString());
	}
	

	/**
	 * 非继承属性
	 */
	abstract protected void assign_before();

	/** 属性 */
	@lombok.Getter @lombok.Setter @com.fasterxml.jackson.annotation.JsonIgnore
	private java.util.List<bairui.international.model.domain.jpa.TB_ProductProperty> productPropertyToString;
	/** 赋值属性 */
	abstract protected java.util.ArrayList assignProductPropertyToString();

	/**
	 * json忽略注解覆盖继承属性
	 */

	/**
	 * 对象转字符串输出
	 */
	public String getProductPropertyToStringToString() {
		java.util.List<bairui.international.model.domain.jpa.TB_ProductProperty> it = this.getProductPropertyToString();
		if(null != it){
			return it
					.stream()
					.map(bairui.international.model.domain.jpa.TB_ProductProperty::toString)
					.collect(java.util.stream.Collectors.toList())
					.toString();
		}
		return null;
	}

}
